﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Assessment.Management.Utils;
using Assessment.Management.SharedComponent.Params.ManagerParam;
using Assessment.Management.SharedComponent.Constants;
using Assessment.Management.BIZ;
using Assessment.Management.SharedComponent.Entities;
using Assessment.Management.UI.Admin.Upload;
using System.IO;

namespace Assessment.Management.UI.Admin.UserControls.Subjects
{
    public partial class SubjectAdd : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }
          private bool ValidateDataToAdd()
        {
            bool kt = true;
            if (txtSTC.Text==""||txtTenMH.Text=="")
            {
                kt = false;
            }
            return kt;
        }
        private bool CheckExitsData()
        {
            SubjectParam param = new SubjectParam(FunctionType.CheckExitsData);
            MainController.Provider.Execute(param);
            bool kt = false;
            if (param.Subject.ID > 0)
            {
                kt = true;
            }
            return kt;
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
           if (ValidateDataToAdd())
            {
                if (CheckExitsData())
                {
                    lblMessage.Text = "<font color='Red'>Đã tồn tại dữ liệu này. Vui lòng kiểm tra lại</font>";
                }
                else
                {
            SaveSubject();
                }

            }
             else
             {
                 lblMessage.Text = "<font color='Red'>Thông tin chưa đầy đủ. Vui lòng kiểm tra lại</font>";
             }
        
        }
        
        protected void btnSaveAndNew_Click(object sender, EventArgs e)
        {
            if (ValidateDataToAdd())
            {
                if (CheckExitsData())
                {
                    lblMessage.Text = "<font color='Red'>Đã tồn tại dữ liệu này. Vui lòng kiểm tra lại</font>";
                }
                else
                {
                    SaveSubjectAndNew();
                }

            }
            else
            {
                lblMessage.Text = "<font color='Red'>Thông tin chưa đầy đủ. Vui lòng kiểm tra lại</font>";
            }
        }
        //Lưu môn học xuống csdl
        private void SaveSubject()
        {
            SubjectParam param = new SubjectParam(FunctionType.CreateSubject);
            param.Subject = GetItemOnForm();
            MainController.Provider.Execute(param);
            Response.Redirect("UniAdmin.aspx?do=subjectmanager");
        }
        private void SaveSubjectAndNew()
        {
            SubjectParam param = new SubjectParam(FunctionType.CreateSubject);
            param.Subject = GetItemOnForm();
            MainController.Provider.Execute(param);
           Response.Redirect("UniAdmin.aspx?do=subjectadd");
        }

        //Lấy dữ liệu nhập vào
        private Subject GetItemOnForm()
        {
            Subject subject = new Subject();
            subject.SubjectName = txtTenMH.Text.Trim();
            subject.Credit = int.Parse(txtSTC.Text.Trim());
            subject.CreatedBy = SMX.smx_CreatedBy;
            subject.CreatedDTG = DateTime.Now;
            subject.Deleted = SMX.smx_IsNotDeleted;
            subject.Version = SMX.smx_FirstVersion;
            return subject;
        }
        protected void btnUpload_Click(object sender, EventArgs e)
        {
            if (fileUpload.HasFile)
            {

                string path = string.Concat(Server.MapPath(@"\UI\Admin\Upload\" + fileUpload.FileName));
                FileInfo fInfo = new FileInfo(path);
                if (fInfo.Exists)
                {
                    fInfo.Delete();
                }
                fileUpload.SaveAs(path);
                Uploadfile up = new Uploadfile();
                up.Upload(path,"Subjects");
                Response.Redirect("UniAdmin.aspx?do=subjectmanager");
            }
        }
    }
}